home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Tools / Languages / MacMETH 3.2.1 / M2Tools 3.2.1 / ErrList.DOK < prev    next >
Encoding:
Text File  |  1994-11-11  |  9.6 KB  |  135 lines  |  [TEXT/MEDT]

  1. Modula-2 single-pass compiler error codes and restrictions
  2.  
  3. NW 4.1.84 / rev 10.7.84 / rev 29.6.86 / Assembler 9.8.87 B.St. / rev 11.11.94 HS.
  4.  
  5.  
  6. Syntax errors
  7.  
  8. -  10  identifier expected
  9. -  11  ,  comma expected
  10. -  12  ;  semicolon expected
  11. -  13  :  colon expected
  12. -  14  .  period expected
  13. -  15  )  right parenthesis expected
  14. -  16  ]  right bracket expected
  15. -  17  }  right brace expected
  16. -  18  =  equal sign expected
  17. -  19  :=  assignment expected
  18. -  20  END expected
  19. -  21  ..  ellipsis expected
  20. -  22  (  left parenthesis expected
  21. -  23  OF expected
  22. -  24  TO expected
  23. -  25  DO expected
  24. -  26  UNTIL expected
  25. -  27  THEN expected
  26. -  28  MODULE expected
  27. -  29  illegal digit, or number too large
  28. -  30  IMPORT expected
  29.  
  30. -  31  factor starts with illegal symbol
  31. -  32  identifier, (, or [ expected
  32. -  33  identifier, ARRAY, RECORD, SET, POINTER, PROCEDURE, (, or [ expected
  33. -  34  Type followed by illegal symbol
  34. -  35  statement starts with illegal symbol
  35. -  36  declaration followed by illegal symbol
  36. -  37  statement part is not allowed in definition module
  37. -  38  export list not allowed in program module
  38. -  39  EXIT not inside a LOOP statement
  39. -  40  illegal character in number
  40. -  41  number too large
  41. -  42  comment without closing *)
  42. -  44  expression must contain constant operands only
  43. -  45  control character within string
  44. -  46  too many digits (> 30)
  45.  
  46. Undefined
  47.  
  48. -  50  identifier not declared or not visible
  49.  
  50.  
  51. Class and type errors
  52.  
  53. -  51  object should be a constant
  54. -  52  object should be a type
  55. -  53  object should be a variable
  56. -  54  object should be a procedure
  57. -  55  object should be a module
  58. -  56  type should be a subrange
  59. -  57  type should be a record
  60. -  58  type should be an array
  61. -  59  type should be a set
  62. -  60  illegal base type of set
  63. -  61  incompatible type of label or of subrange bound
  64. -  62  multiply defined case (label)
  65. -  63  low bound > high bound
  66. -  64  more actual than formal parameters
  67. -  65  fewer actual than formal parameters
  68.  
  69.  66 - 73 mismatch between parameter lists in def and in impl modules
  70. -  66  more parameters in I than in D
  71. -  67  parameters with equal types in I have different types in D
  72. -  68  mismatch between VAR specifications
  73. -  69  mismatch between type specifications
  74. -  70  more parameters in D than in I
  75. -  71  mismatch between result type specifications
  76. -  72  function in D, pure procedure in I
  77. -  73  procedure in D has parameters, but not in I
  78.  
  79. -  74  code or forward procedure cannot be declared in definition module
  80. -  75  illegal type of control variable in FOR statement
  81. -  76  procedure call of a function
  82. -  77  identifiers in heading and at end do not match
  83. -  78  redefinition of a type that is declared in definition part
  84. -  79  imported module not found
  85. -  80  unsatisfied export list entry
  86. -  81  illegal type of procedure result
  87. -  82  illegal base type of subrange
  88. -  83  illegal type of case expression
  89. -  84  writing of symbol file failed
  90. -  85  keys of imported symbol files do not match
  91. -  86  error in format of symbol file
  92. -  87  CARDINAL from symbol file not compatible with this compiler
  93. -  88  symbol file not successfully opened
  94. -  89  there are procedures without bodies
  95.  
  96. Implementation restrictions of compiler
  97.  
  98. -  90  in {a..b}, if a is a constant, b must also be a constant
  99. -  91  identifier buffer overflow
  100. -  92  too many cases
  101. -  93  too many exit statements
  102. -  94  index type of array must be a subrange
  103. -  95  subrange bound must be less than 2^15
  104. -  96  too many global modules
  105. -  97  too many procedure in definition module
  106. -  98  too many structure elements in definition module
  107.  
  108. Multiple definition
  109.  
  110. - 100  multiple definition within the same scope
  111.  
  112. Class and type incompatibilities
  113.  
  114. - 101  illegal use of type
  115. - 102  illegal use of procedure
  116. - 103  illegal use of constant
  117. - 104  illegal use of type
  118. - 105  illegal use of procedure
  119. - 106  illegal use of expression
  120. - 107  illegal use of module
  121. - 108  constant index out of range
  122. - 109  indexed variable is not an array, or the index has the wrong type
  123. - 110  record selector is not a field identifier
  124. - 111  dereferenced variable is not a pointer
  125. - 112  operand type incompatible with sign inversion
  126. - 113  operand type incompatible with NOT
  127. - 114  x IN y: type(x) # basetype(y)
  128. - 115  type of x cannot be the basetype of a set, or y is not a set
  129. - 116  {a..b}: type of either a or b is not equal to the base type of the set
  130. - 117  incompatible operand types
  131. - 118  operand type incompatible with *
  132. - 119  operand type incompatible with /
  133. - 120  operand type incompatible with DIV
  134. - 121  operand type incompatible with MOD
  135. - 122  opera